///*
// * To change this license header, choose License Headers in Project Properties.
// * To change this template file, choose Tools | Templates
// * and open the template in the editor.
// */
//package propertymodel;
//
//import java.util.Objects;
//import javafx.beans.property.SimpleIntegerProperty;
//import javafx.beans.property.SimpleListProperty;
//import javafx.beans.property.SimpleStringProperty;
//import javafx.collections.FXCollections;
//import javafx.collections.ObservableList;
//import jpamodel.Category;
//
///**
// *
// * @author Joseph
// */
//public class PropCategory {
//
//    // <editor-fold desc="Bunch of useless variables" defaultstate="collapsed">
//    private SimpleStringProperty nameProperty;
//    private SimpleIntegerProperty idProperty;
//    private SimpleListProperty<PropOwnedWare> ownedProperty;
//    private SimpleListProperty<PropCommissionWare> commisionProperty;
//    private final Category c;
//    private static final String ID = "ID";
//    private static final String NAME = "Name";
//    private static final String OWNED = "OwnedWare";
//    private static final String COMMSION = "CommissionWare";
//    // </editor-fold>
//
//    public PropCategory(Category category) {
//        c = category;
//        setup();
//    }
//
//    // <editor-fold desc="idProperty methods" defaultstate="collapsed">
//    public SimpleIntegerProperty idProperty() {
//        if (idProperty == null) {
//            idProperty = new SimpleIntegerProperty(this, ID, c.getCatID());
//        }
//        return idProperty;
//    }
//
//    public void setID(int newValue) {
//        idProperty.set(newValue);
//        c.setCatID(newValue);
//    }
//
//    public int getID() {
//        return idProperty.get();
//    }
//    // </editor-fold>
//
//    // <editor-fold desc="NameProperty methods" defaultstate="collapsed">
//    public SimpleStringProperty nameProperty() {
//        if (nameProperty == null) {
//            nameProperty = new SimpleStringProperty(this, NAME, c.getName());
//        }
//        return nameProperty;
//    }
//
//    public void setName(String newValue) {
//        nameProperty.set(newValue);
//        c.setName(newValue);
//    }
//
//    public String getName() {
//        return nameProperty.get();
//    }
//    // </editor-fold>
//
//    // <editor-fold desc="ownedProperty methods" defaultstate="collapsed">
//    public SimpleListProperty<PropOwnedWare> ownedProperty() {
//        if (ownedProperty == null) {
//            ObservableList<PropOwnedWare> oList = FXCollections.observableArrayList();
//            c.getOwnedWareList().stream().forEach((a) -> {
//                oList.add(a.propOwnedWare());
//            });
//            ownedProperty = new SimpleListProperty<>(this, OWNED, oList);
//        }
//        return ownedProperty;
//    }
//
//    // </editor-fold>
//    // <editor-fold desc="commisionProperty methods" defaultstate="collapsed">
//    public SimpleListProperty<PropCommissionWare> commisionProperty() {
//        if (commisionProperty == null) {
//            ObservableList<PropCommissionWare> oList = FXCollections.observableArrayList();
//            c.getCommissionWareList().stream().forEach((a) -> {
//                oList.add(a.getWare());
//            });
//            commisionProperty = new SimpleListProperty<>(this, COMMSION, oList);
//        }
//        return commisionProperty;
//    }
//
//    // </editor-fold>
//    // <editor-fold desc="Escapes the pattern of previous methods, SO WHO GIVES TWO S***" defaultstate="collapsed">
//    public Category getCategory() {
//        return c;
//    }
//
//    private void setup() {
//        idProperty();
//        nameProperty();
//        ownedProperty();
//        commisionProperty();
//    }
//
//    // </editor-fold>
//    @Override
//    public int hashCode() {
//        int hash = 7;
//        hash = 67 * hash + Objects.hashCode(this.nameProperty);
//        hash = 67 * hash + Objects.hashCode(this.idProperty);
//        hash = 67 * hash + Objects.hashCode(this.ownedProperty);
//        hash = 67 * hash + Objects.hashCode(this.commisionProperty);
//        return hash;
//    }
//
//    @Override
//    public boolean equals(Object obj) {
//        if (obj == null) {
//            return false;
//        }
//        if (getClass() != obj.getClass()) {
//            return false;
//        }
//        final PropCategory other = (PropCategory) obj;
//        if (!Objects.equals(this.idProperty, other.idProperty)) {
//            return false;
//        }
//        if (!Objects.equals(this.c, other.c)) {
//            return false;
//        }
//        return true;
//    }
//
//}
